Form Nodes
Node
所有实际的表单 Node 都继承于 Node。
API
| 属性/方法 | 类型 | 描述 |
|---|---|---|
nodePath readonly | string | Node 的路径。 |
| value | any | 返回或者设置节点的值。如果字段是系统保护字段,则设置该值将会引发错误。 |
caution
Builder API 创建的 node 节点取值应该直接使用通过 FormDialogBuilder 创建表单时,指定的 id 值,这里的表单完全是通过脚本创建的,和智元平台中配置的模型完全无关。
FormNode
表单根节点引用对象。
API
| 属性/方法 | 类型 | 描述 |
|---|---|---|
| getField(path) | 参数:path: string返回:FieldNode | 在父节点中返回 path 对应的节点引用。 |
| getSubGrid(path) | 参数:path: string返回:SubGridNode | 在父节点中返回 path 对应的子表引用。 |
| getSubTreeGrid(path) | 参数:path: string返回:SubTreeGridNode | 在父节点中返回 path 对应的子树表引用。 |
| getSubTreeGridApi(path) | 参数:path: string返回:{ expand(id), collapse(id) } | 展开或折叠树节点。expand(id)、collapse(id) 的参数是节点 id。 |
FieldNode
表单字段节点引用对象。
API
| 属性/方法 | 类型 | 描述 |
|---|---|---|
name readonly | string | 返回字段的名称,也就是字段的 id。 |
| label | string | 返回或者设置字段的显示标签文本。 |
| disabled | boolean | 返回或者设置字段的可用状态。如果字段是系统保护字段并且处于不可用状态,则设置该值为 false 将会引发错误。 |
| visible | boolean | 返回或者设置字段的可见状态。 |
| required | boolean | 返回或者设置字段的必填状态。 |
isValid readonly | boolean | 返回字段的校验正确性。 |
| setIsValid(valid, [message]) | 参数:valid: booleanmessage: string返回:无 | 设置字段的校验正确性。field.setIsValid(false, 'Error!') |
| selectUnique(params) | 参数:params: FindParams 或 string返回:Promise | 查询结果只有一条时,用该结果给当前字段赋值。 |
| selectOne(params) | 参数:params: FindParams返回:Promise | 查询有结果时,用第一条给当前字段赋值。 |
| addFilter(where, bindVars) | 参数:where: FindWhereParams,bindVars: \{ name, value \}[] 可选,返回:无 | 给参照字段增加过滤条件,与内置条件按 AND 组合。 |
| removeFilter() | 去掉通过 addFilter 增加的过滤条件。 | |
richText readonly | RichTextApi | undefined | 富文本 API,仅 RichText 富文本字段 的 text 字段可用,其他字段为 undefined。用于读写富文本内容,详细介绍。 |
非常重要!
如果 FieldNode 是一个引用关联字段,比如客户、供应商、人员、部门等这种类型的字段。那么我们要给这种字段通过 Client API 赋值的时候,不能直接给字段的 value 设置一个 id。而必须要通过 selectUnique 或者 selectOne 来查找数据并且赋值。
SubGridNode
继承自 FieldNode
API
| 属性/方法 | 类型 | 描述 |
|---|---|---|
rowCount readonly | number | 返回子表的行数量。 |
rows readonly | RowNode[] | 返回子表所有行节点。 |
| appendRow(initialize, initData) | 参数:initialize: boolean 可选,initData: any 可选,返回:RowNode | 在末尾加一行。initialize 为 true 时同时初始化。initData 是这一行的初始值。Web 端默认有空白行时,追加发生在最后一行之前;H5 直接追加到最后。 |
appendRows(rows: Array<any>) | 参数: rows : Array<any>, 行数据集合 | 给子表添加一批行 |
| insertRow(index) | 参数:index: number返回:RowNode | 给子表在 index 位置插入一个空白行,并且返回新增的行引用。 |
insertRows(index:number, rows: Array<any>) | 参数:index: number, rows : Array<any>行数据集合 | 给子表在 index 位置插入一批数据行。 |
| removeRowAt(index) | 参数:index: number | 删除子表中 index 位置的行。 |
| removeAllRows() | 清空子表的所有行。 | |
| getRowAt(index) | 参数:index: number返回:RowNode | 返回子表中 index 位置的行。 |
| rebuildColumns() | 返回:无 | 明细列或列分组变更后刷新列头,并同步子表 schema 与已有行数据。建表阶段列结构不再变化时不必调用。 |
SubTreeGridNode
继承自 SubGridNode,因此包含子表的全部方法。通过 form.getSubTreeGrid(path) 获取。
API
| 属性/方法 | 类型 | 描述 |
|---|---|---|
| appendChild(parentId, data, initialize) | parentId: string \| null,data: any,initialize: boolean 可选,返回:RowNode | 在指定父节点下加一个子节点。parentId 为 null 时加到根上。 |
| appendChildren(parentId, children) | parentId: string \| null,children: any[] | 在指定父节点下批量加子节点。 |
| getChildren(parentId) | 参数:parentId: string,返回:RowNode[] | 返回该节点的直接子节点。 |
| getParent(nodeId) | 参数:nodeId: string,返回:RowNode \| null | 返回父节点。 |
| getPath(nodeId) | 参数:nodeId: string,返回:string[] | 从根到该节点的 id 路径。 |
| removeNode(nodeId) | 参数:nodeId: string | 删除该节点及其全部子孙。 |
| moveNode(nodeId, newParentId) | nodeId: string,newParentId: string \| null | 把节点挂到新的父节点下。newParentId 为 null 时挂到根上。 |
展开和折叠不在节点上,用 form.getSubTreeGridApi(path).expand(id) 和 collapse(id)。
RowNode
继承自 FieldNode
API
| 属性/方法 | 类型 | 描述 |
|---|---|---|
| getField(path) | 参数:path: string返回:FieldNode | 在父节点中 返回 path 对应的节点引用。 |
rowIndex readonly | number | 返回子表行位置(从 0 开始)。 |
gridName readonly | string | 返回子表名称。 |
isInitialized readonly | bool | 行是否初始化。 |
| initialize() | 初始化行, 添加的空行是未初始化的情况下不会触发规则计算,这时需要主动调用行初始化方法 |